﻿using System;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.Serialization;

namespace JTLeigh.Commerce.Spencer.Features.ProductImages.Service.Contracts.Runtime.GetProductImages
{

	/// <summary>
	/// Data contract representing a single size variant of a view of a product.
	/// </summary>
	/// <remarks>
	/// <para>
	/// A single view (e.g. &quot;Front View&quot;) may have multiple variants representing 
	/// different sizes (e.g. &quot;Small Front View&quot;, &quot;Medium Front View&quot;,
	/// &quot;Large Front View&quot;, etc).
	/// </para>
	/// </remarks>
    [DataContract(Name = "ProductImageVariant", Namespace = "http://schemas.jtleigh.com/Commerce/Spencer/Features/ProductImages/1.0/Runtime/GetProductImages/")]
    public class ProductImageVariant
	{

		/// <summary>
		/// Gets or sets the size identifier.
		/// </summary>
		/// <value>A size identifier <see cref="Guid"/>.</value>
		[DataMember(Name = "SizeId", IsRequired = true)]
		public Guid SizeId { get; set; }

		/// <summary>
		/// Gets or sets the path to the image.
		/// </summary>
        /// <remarks>
        /// <para>
        /// All paths returned from services must be relative and should be mapped to 
        /// channel-specific relative or absolute paths in each channel.
        /// </para>
        /// </remarks>
		[DataMember(Name = "Path", IsRequired = true)]
		public string Path { get; set; }

	}

}
